Arity Raising in Manticore
نویسندگان
چکیده
Compilers for polymorphic languages are required to treat values in programs in an abstract and generic way at the source level. The challenges of optimizing the boxing of raw values, flattening of argument tuples, and raising the arity of functions that handle complex structures to reduce memory usage are old ones, but take on newfound import with processors that have twice as many registers. We present a novel strategy that uses both control-flow and type information to provide an arity raising implementation addressing these problems. This strategy is conservative — no matter the execution path, the transformed program will not perform extra operations.
منابع مشابه
Programming in Manticore, a Heterogenous Parallel Functional Language
The Manticore project is an effort to design and implement a new functional language for parallel programming. Unlike many earlier parallel languages, Manticore is a heterogeneous language that supports parallelism at multiple levels. Specifically, the Manticore language combines Concurrent ML-style explicit concurrency with fine-grain, implicitly threaded, parallel constructs. These lectures w...
متن کاملTitle: Extending Manticore to Manage Ip and Virtual Machine Slices in the Federica Project
FEDERICA will provide an IT infrastructure made of switches, routers and computing nodes that will allow the research networking community to test new protocols and techniques for the future Internet. MANTICORE is a software solution that delivers infrastructure as a service to router devices and IP networks. One of the main goals of FEDERICA is to allow network researchers to share the FEDERIC...
متن کاملArity Raiser and its Use in Program Specialization
Experiments on generating compilers by specializing specializers with respect to interpreters have shown that the compilers thus obtained have a natural structure only if the specializer does variable splitting. Variable splitting can result in a residual program using several variables to represent the values of a single variable of the original program. In the case of functional programming v...
متن کاملThe Generation of a Higher-Order Online Partial Evaluator
We address the problem of generating an online partial evaluator for a higher-order, functional language from an appropriate interpreter using a state-of-the-art ooine partial evaluator. To ensure termination of the generated online spe-cializer the interpreter computes a self-embedding property on closure values and data structures. This guarantees termination whenever there is no static loop ...
متن کاملSub-tree Swapping Crossover and Arity Histogram Distributions
Recent theoretical work has characterised the search bias of GP subtree swapping crossover in terms of program length distributions, providing an exact fixed point for trees with internal nodes of identical arity. However, only an approximate model (based on the notion of average arity) for the mixed-arity case has been proposed. This leaves a particularly important gap in our knowledge because...
متن کامل